package processer

import "fmt"

//该文件主要用于服务器端存储在线用户状态信息
/*
因为userMgr在服务器端被多处调用，所以设置成全局变量
*/
var (
	usermger *userMger
)

type userMger struct {
	onlineusers map[int]*UserProcess
}

//完成对userMger的初始化
func init() {
	usermger = &userMger{
		onlineusers: make(map[int]*UserProcess, 1024),
	}
}

//对onlineusers添加
func (this *userMger) AddOnlineUsers(up *UserProcess) {
	fmt.Println("前端传来的up.UserId=", up.UserId)
	this.onlineusers[up.UserId] = up
}

//对onlineusers删除
func (this *userMger) DelOnlineUsers(userid int) {
	delete(this.onlineusers, userid)
}

//查询onlineusers所有用户
func (this *userMger) GetOnlineUsers() map[int]*UserProcess {
	return this.onlineusers
}

//返回某个onlineusers的用户
func (this *userMger) SelectOnlineUser(userid int) (up *UserProcess, err error) {
	//从map取出值
	up, ok := this.onlineusers[userid]
	if !ok {
		err = fmt.Errorf("要查找的用户%d不存在", userid)
		return
	}

	return
}
